package com.ruoyi.datastatistics.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseDO;
import lombok.*;
import org.apache.ibatis.type.Alias;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 大表月用量数据对象 t_terminals_monfreeze_db
 *
 * @author ruoyi
 * @date 2023-09-07
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_terminals_monfreeze_db")
@Alias("TerminalsMonfreezeDb")
public class TerminalsMonfreezeDb extends BaseDO {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableField("id")
    private Long id;

    /**
     * 设备归属水司
     */
    @TableField("tenant_id")
    private String tenantId;

    /**
     * 用户编号
     */
    @Excel(name = "用户编号", sort = 1)
    @TableField("user_id")
    private String userId;

    /**
     * 设备编号
     */
    @TableField("terminal_id")
    private String terminalId;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称", sort = 0)
    @TableField("terminal_name")
    private String terminalName;

    /**
     * IMEI
     */
    @Excel(name = "IMEI", sort = 9)
    @TableField(exist = false)
    private String imei;

    /**
     * 位置识别编号
     */
    @TableField("location_nb")
    private String locationNb;

    /**
     * 设备地址
     */
    @TableField("terminal_address")
    private String terminalAddress;

    /**
     * 上次累计正向读数
     */
    @TableField("read_number_o")
    private BigDecimal readNumberO;

    /**
     * 本次累计正向读数
     */
    @TableField("read_number_n")
    private BigDecimal readNumberN;

    /**
     * 上次累计反向读数
     */
    @TableField("reverse_number_o")
    private BigDecimal reverseNumberO;

    /**
     * 本次累计反向读数
     */
    @TableField("reverse_number_n")
    private BigDecimal reverseNumberN;

    /**
     * 上期冻结日的总流量
     */
    @TableField("total_flow_o")
    private BigDecimal totalFlowO;

    /**
     * 本期冻结日的总流量
     */
    @TableField("total_flow_n")
    private BigDecimal totalFlowN;

    /**
     * 本次正向月用量
     */
    @Excel(name = "正向用量(m³)", sort = 4)
    @TableField("read_dosage_n")
    private BigDecimal readDosageN;

    /**
     * 上期正向月用量
     */
    @TableField("read_dosage_o")
    private BigDecimal readDosageO;

    /**
     * 上次反向月用量
     */
    @TableField("reverse_dosage_o")
    private BigDecimal reverseDosageO;

    /**
     * 本次反向月用量
     */
    @Excel(name = "反向用量(m³)", sort = 5)
    @TableField("reverse_dosage_n")
    private BigDecimal reverseDosageN;

    /**
     * 本次总用量
     */
    @Excel(name = "总用量(m³)", sort = 6)
    @TableField("dosage_n")
    private BigDecimal dosageN;

    /**
     * 上次总用量
     */
    @TableField("dosage_o")
    @Excel(name = "上期总用量(m³)", sort = 7)
    private BigDecimal dosageO;

    /**
     * 累计读数增长率
     */
    @TableField("read_growth_rate")
    private BigDecimal readGrowthRate;

    /**
     * 反向累计读数增长率
     */
    @TableField("reverse_growth_rate")
    private BigDecimal reverseGrowthRate;

    /**
     * 累计读数增长率
     */
    @TableField("total_flow_growth_rate")
    private BigDecimal totalFlowGrowthRate;

    /**
     * 用量增长比率
     */
    @TableField("read_dosage_growth_rate")
    private BigDecimal readDosageGrowthRate;

    /**
     * 反向用量增长比率
     */
    @TableField("reverse_dosage_growth_rate")
    private BigDecimal reverseDosageGrowthRate;

    /**
     * 用量增长比率
     */
    @Excel(name = "总用量增长比(%)", sort = 8)
    @TableField("dosage_growth_rate")
    private BigDecimal dosageGrowthRate;

    /**
     * 上次冻结时间
     */
    @TableField("get_time_o")
    private String getTimeO;

    /**
     * 本次冻结时间
     */
    @TableField("get_time_n")
    private String getTimeN;

    /**
     * 本次月冻结时间
     */
    @TableField("freeze_time_n")
    private String freezeTimeN;

    /**
     * 上次月冻结时间
     */
    @TableField("freeze_time_o")
    private String freezeTimeO;

    /**
     * 冻结月份
     */
    @TableField("freeze_time")
    @Excel(name = "冻结时间", sort = -1)
    private String freezeTime;

    @TableField("create_time")
    private Date createTime;

    /**
     * 区域id
     */
    @TableField(exist = false)
    private String sheetId;

    /**
     * 终端地址
     */
    @Excel(name = "通讯地址", sort = 3)
    @TableField(exist = false)
    private String communicateAddress;
    /**
     * 出厂编号
     */
    @Excel(name = "出厂编号", sort = 2)
    @TableField(exist = false)
    private String firstSupplierId;
    /**
     * 区域代码
     */
    @TableField(exist = false)
    private String sheetsCode;
    /**
     * 区域名称
     */
    @TableField(exist = false)
    private String sheetsName;

    @TableField(exist = false)
    private String startTime;

    @TableField(exist = false)
    private String endTime;
}
